home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 …ember: Reference Library / Dev.CD Dec 00 RL Disk 1.toast / pc / technical documentation / develop / develop issue 26 / develop issue 26 code / wide (64 bit) library / scmbuild < prev    next >
Encoding:
Text File  |  1996-08-05  |  7.5 KB  |  216 lines

  1. # Copyright © 1996 by Apple Computer, Inc.  All rights reserved.
  2. # SCMBuild
  3. #
  4. #FILE
  5. #    SCMBuild
  6. #
  7. #NAME
  8. #    Int64Lib
  9. #
  10. #DESCRIPTION
  11. #    This MPW Build file contains MPW Shell instructions to build
  12. #    the Shared Int64Lib library
  13. #
  14. #MODIFICATION HISTORY
  15. #    Created by Terry Teague
  16. #
  17. #    18 Jul 96    -    TRT    -    Initial version
  18. #    28 Jul 96    -    TRT    -    Modified to use new naming conventions
  19. #    05 Aug 96    -    TRT    -    Define {Shared.Includes} if necessary
  20. #
  21.  
  22. Set StartTime                    `Date -n`
  23. Echo "# Started Int64Lib build at : `Date -t`"
  24.  
  25. #=============================================================================================
  26. # Available options for this script (usage string)
  27. #=============================================================================================
  28.  
  29. Set UsageString "∂
  30. SCMBuild                # Build Int64Lib products∂n∂
  31. SCMBuild [option…]∂n∂
  32.     -H[elp]             # Show this help messge∂n∂
  33.     -TestWide           # make the TestWide application∂n∂
  34.     -WideLib            # make the WideLib library (default)∂n∂
  35.     -68K                # make a 68K only version∂n∂
  36.     -PPC                # make a PPC only version∂n∂
  37.     -FAT                # make both 68K and PPC versions (default)∂n∂
  38.     -R[ebuild]          # do a clean build∂n∂
  39.     -MPW                # use MPW as the development system (default)∂n∂
  40.     -MW                 # use MetroWerks as the development system∂n∂
  41.     -SC                 # use Symantec as the development system∂n∂
  42.     -noUni              # don't use Universal Headers (implies 68K only)∂n∂
  43.     -UniV1              # use Universal Headers v1.0 (default)∂n∂
  44.     -UniV2              # use Universal Headers v2.x∂n∂
  45.     -UniV3              # use Universal Headers v3.x∂n∂
  46. "
  47.  
  48. #=============================================================================================
  49. # Names of products
  50. #=============================================================================================
  51.  
  52. Set LibName                WideLib
  53. Set TestName            TestWide
  54. Set BuildName            {LibName}
  55.  
  56. #=============================================================================================
  57. # Assume no script input parameters - set Shell variables to default options
  58. #=============================================================================================
  59.  
  60. Set newParams            ""
  61. Set ShowHelpOnly        0
  62. Set doRebuild            0
  63.  
  64. Set OtherMakeOptions    ""
  65. If "{MPWVersion}" !~ /3.4≈/
  66.     Set BuildOptions        "-d Wide68K=Wide.68K.lib -d WidePPC=Wide.PPC.xcoff ∂
  67.                                 -d TestWide68K=TestWide.68K -d TestWidePPC=TestWide.PPC ∂
  68.                                 -d TestWideFAT=TestWide.FAT"
  69. Else
  70.     Set BuildOptions        "-d Wide68K=Wide.68K.lib.SC -d WidePPC=Wide.PPC.xcoff.MrC ∂
  71.                                 -d TestWide68K=TestWide.68K.SC -d TestWidePPC=TestWide.PPC.MrC ∂
  72.                                 -d TestWideFAT=TestWide.FAT.SCMrC"
  73. End
  74. Set PreUniHeaders        "-d qPreUniHeaders=1"    #set to 0 for Universal Headers
  75.  
  76. #=============================================================================================
  77. # Echo the command
  78. #=============================================================================================
  79.  
  80. Open "{WorkSheet}"
  81. Echo "∂n{0} {Parameters}"
  82.  
  83. #=============================================================================================
  84. # Build 68K and PPC versions of WideLib by default if no parameters given
  85. #=============================================================================================
  86.  
  87. If {#} == 0
  88. End
  89.  
  90. #=============================================================================================
  91. # Process the script parameters
  92. #=============================================================================================
  93.  
  94. For x in {"parameters"}
  95.     If "{x}" =~ /-H(elp)«0,1»/
  96.         Set ShowHelpOnly        1
  97.     Else If "{x}" =~ /-TestWide/
  98.         Set BuildName            "{TestName}"
  99.     Else If "{x}" =~ /-WideLib/
  100.         Set BuildName            "{LibName}"
  101.     Else If "{x}" =~ /-68K/
  102.         If "{MPWVersion}" !~ /3.4≈/
  103.             Set BuildOptions        "-d Wide68K=Wide.68K.lib -d WidePPC= ∂
  104.                                         -d TestWide68K=TestWide.68K -d TestWidePPC= ∂
  105.                                         -d TestWideFAT="
  106.         Else
  107.             Set BuildOptions        "-d Wide68K=Wide.68K.lib.SC -d WidePPC= ∂
  108.                                         -d TestWide68K=TestWide.68K.SC -d TestWidePPC= ∂
  109.                                         -d TestWideFAT="
  110.         End
  111.     Else If "{x}" =~ /-PPC/
  112.         If "{MPWVersion}" !~ /3.4≈/
  113.             Set BuildOptions        "-d Wide68K= -d WidePPC=Wide.PPC.xcoff ∂
  114.                                         -d TestWide68K= -d TestWidePPC=TestWide.PPC ∂
  115.                                         -d TestWideFAT="
  116.         Else
  117.             Set BuildOptions        "-d Wide68K= -d WidePPC=Wide.PPC.xcoff.MrC ∂
  118.                                         -d TestWide68K= -d TestWidePPC=TestWide.PPC.MrC ∂
  119.                                         -d TestWideFAT="
  120.         End
  121.     Else If "{x}" =~ /-FAT/
  122.         If "{MPWVersion}" !~ /3.4≈/
  123.             Set BuildOptions        "-d Wide68K=Wide.68K.lib -d WidePPC=Wide.PPC.xcoff ∂
  124.                                         -d TestWide68K=TestWide.68K -d TestWidePPC=TestWide.PPC ∂
  125.                                         -d TestWideFAT=TestWide.FAT"
  126.         Else
  127.             Set BuildOptions        "-d Wide68K=Wide.68K.lib.SC -d WidePPC=Wide.PPC.xcoff.MrC ∂
  128.                                         -d TestWide68K=TestWide.68K.SC -d TestWidePPC=TestWide.PPC.MrC ∂
  129.                                         -d TestWideFAT=TestWide.FAT.SCMrC"
  130.         End
  131.     Else If "{x}" =~ /-R(ebuild)«0,1»/
  132.         Set doRebuild             1
  133.     Else If "{x}" =~ /-NoUni/
  134.         Set PreUniHeaders        "-d qPreUniHeaders=1"    #set to 1 for pre-Universal Headers
  135.         Set PPCCIncludes        "{CIncludes}"
  136.     Else If "{x}" =~ /-UniV1/
  137.         Set PreUniHeaders        "-d qPreUniHeaders=0 -d qUniHeadersV1=1"    #set to 0 for Universal Headers
  138.     Else If "{x}" =~ /-UniV2/
  139.         Set PreUniHeaders        "-d qPreUniHeaders=0 -d qUniHeadersV2=1"    #set to 0 for Universal Headers
  140.     Else If "{x}" =~ /-UniV3/
  141.         Set PreUniHeaders        "-d qPreUniHeaders=0 -d qUniHeadersV3=1"    #set to 0 for Universal Headers
  142.     Else
  143.         Set newParams "{newParams} {x}"
  144.     End
  145. End
  146.  
  147. #=============================================================================================
  148. # Handle error conditions in script parameters, and handle help
  149. #=============================================================================================
  150.  
  151. If {ShowHelpOnly}
  152.     Echo "{UsageString}" > Dev:StdOut
  153.     Exit 0
  154. End
  155.  
  156. #=============================================================================================
  157. # Build it
  158. #=============================================================================================
  159.  
  160. #Set COptions "-r -mbg off -warnings off -d qTiming=0"
  161. #Export COptions
  162.  
  163. If "{Shared.Includes}" == ""
  164.     If "`Exists -d :Includes:`"
  165.         Set Shared.Includes    ":Includes:"
  166.     Else
  167.         Set Shared.Includes    ":"
  168.     End
  169.     Export Shared.Includes
  170. End
  171.  
  172. If "{MPWVersion}" !~ /3.4≈/
  173. #    For MPW 3.3.x, must use pre-Universal CIncludes -
  174. #    you may have to tweak this for your own use
  175. #    (Universal Headers 2.0 has a conflict between Types.h and SANE.h)
  176.     If "`Exists -d {MPW}Interfaces:68KCIncludes:`"
  177.         Set CIncludes "{MPW}Interfaces:68KCIncludes:"
  178.     End
  179. End
  180.  
  181. # Options to pass to the C compiler
  182. #Set OtherCOptions "-d OtherCOptions='{BuildOptions}'"
  183.  
  184. # Options to pass to Make
  185. # To turn on Macsbug symbol, use -d MacsBug=full.  SADE symbols, -d Symbols=full.
  186. # Or you can pass the option from the command line, eg., -d Macsbug=full
  187. Set OtherMakeOptions "-d PreUniHeaders=∂'{PreUniHeaders}∂' {BuildOptions}"
  188.  
  189. If Not "`Exists -d :Objects:`"
  190.     NewFolder ":Objects:"
  191. End
  192.  
  193. #
  194. # Do a clean build
  195. #
  196. If {doRebuild}
  197. End
  198.  
  199. Echo    -n    "#--->"
  200. Echo    "::building {BuildName}"
  201.  
  202. BuildProgram "{BuildName}" {OtherCOptions} {OtherMakeOptions} {newParams}
  203.  
  204. #=============================================================================================
  205. # Clean up and exit
  206. #=============================================================================================
  207.  
  208. #Directory "{SavedDirectory}"
  209.  
  210. Set EndTime                        `Date -n`
  211. Set BuildTime                    `Evaluate {EndTime} - {StartTime}`
  212. Set minutes                        `Evaluate {BuildTime} ÷ 60`
  213. Set seconds                        `Evaluate {BuildTime} - ({minutes} * 60)`
  214.  
  215. Echo "# Build Time:  {minutes} minutes {seconds} seconds"
  216.